package com.cloudcross.ssp.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Date;

import org.codehaus.jackson.map.ObjectMapper;

/**
 * adx媒体统计用Entity
 * 
 * @author 高万超
 * @version V1.0.0 $ 2017年6月20日 下午6:30:26
 */
public class RptAdxMedia implements Serializable {

    /** ID */
    private int id;

    /** 数据同步时间 */
    private Timestamp syncTime;

    /** 统计时间 */
    private Date date;

    /** ADX ID */
    private int adxId;

    /** ADX名称 */
    private String adx;

    /** 媒体ID */
    private String mediaId;

    /** 媒体名称 */
    private String media;

    /** 来源：0-PC；1-APP； */
    private int source;

    /** 请求数 */
    private int request;

    /** 曝光数 */
    private int impression;

    /** 点击数 */
    private int click;

    /** 营收 */
    private BigDecimal revenue;

    /** 成本 */
    private BigDecimal cost;

    /**
     * ID的取得
     * 
     * @return int ID
     */
    public int getId() {
        return id;
    }

    /**
     * ID的设定
     * 
     * @param id
     *            ID
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * 数据同步时间的取得
     * 
     * @return Timestamp 数据同步时间
     */
    public Timestamp getSyncTime() {
        return syncTime;
    }

    /**
     * 数据同步时间的设定
     * 
     * @param syncTime
     *            数据同步时间
     */
    public void setSyncTime(Timestamp syncTime) {
        this.syncTime = syncTime;
    }

    /**
     * 统计时间的取得
     * 
     * @return Date 统计时间
     */
    public Date getDate() {
        return date;
    }

    /**
     * 统计时间的设定
     * 
     * @param date
     *            统计时间
     */
    public void setDate(Date date) {
        this.date = date;
    }

    /**
     * ADX ID的取得
     * 
     * @return int ADX ID
     */
    public int getAdxId() {
        return adxId;
    }

    /**
     * ADX ID的设定
     * 
     * @param adxId
     *            ADX ID
     */
    public void setAdxId(int adxId) {
        this.adxId = adxId;
    }

    /**
     * ADX名称的取得
     * 
     * @return String ADX名称
     */
    public String getAdx() {
        return adx;
    }

    /**
     * ADX名称的设定
     * 
     * @param adx
     *            ADX名称
     */
    public void setAdx(String adx) {
        this.adx = adx;
    }

    /**
     * 媒体ID的取得
     * 
     * @return String 媒体ID
     */
    public String getMediaId() {
        return mediaId;
    }

    /**
     * 媒体ID的设定
     * 
     * @param mediaId
     *            媒体ID
     */
    public void setMediaId(String mediaId) {
        this.mediaId = mediaId;
    }

    /**
     * 媒体名称的取得
     * 
     * @return String 媒体名称
     */
    public String getMedia() {
        return media;
    }

    /**
     * 媒体名称的设定
     * 
     * @param media
     *            媒体名称
     */
    public void setMedia(String media) {
        this.media = media;
    }

    /**
     * 来源：0-PC；1-APP；的取得
     * 
     * @return int 来源：0-PC；1-APP；
     */
    public int getSource() {
        return source;
    }

    /**
     * 来源：0-PC；1-APP；的设定
     * 
     * @param source
     *            来源：0-PC；1-APP；
     */
    public void setSource(int source) {
        this.source = source;
    }

    /**
     * 请求数的取得
     * 
     * @return int 请求数
     */
    public int getRequest() {
        return request;
    }

    /**
     * 请求数的设定
     * 
     * @param request
     *            请求数
     */
    public void setRequest(int request) {
        this.request = request;
    }

    /**
     * 曝光数的取得
     * 
     * @return int 曝光数
     */
    public int getImpression() {
        return impression;
    }

    /**
     * 曝光数的设定
     * 
     * @param impression
     *            曝光数
     */
    public void setImpression(int impression) {
        this.impression = impression;
    }

    /**
     * 点击数的取得
     * 
     * @return int 点击数
     */
    public int getClick() {
        return click;
    }

    /**
     * 点击数的设定
     * 
     * @param click
     *            点击数
     */
    public void setClick(int click) {
        this.click = click;
    }

    /**
     * 营收的取得
     * 
     * @return BigDecimal 营收
     */
    public BigDecimal getRevenue() {
        return revenue;
    }

    /**
     * 营收的设定
     * 
     * @param revenue
     *            营收
     */
    public void setRevenue(BigDecimal revenue) {
        this.revenue = revenue;
    }

    /**
     * 成本的取得
     * 
     * @return BigDecimal 成本
     */
    public BigDecimal getCost() {
        return cost;
    }

    /**
     * 成本的设定
     * 
     * @param cost
     *            成本
     */
    public void setCost(BigDecimal cost) {
        this.cost = cost;
    }

    public String toString() {

        try {
            return new ObjectMapper().writeValueAsString(this);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "{}";
    }
}